package com.youlai.boot.modules.game.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.youlai.boot.modules.game.model.entity.GameRankChange;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;

/**
 * 游戏排行榜变化记录Mapper接口
 *
 * @author 有来技术团队
 */
@Mapper
public interface GameRankChangeMapper extends BaseMapper<GameRankChange> {

    /**
     * 获取用户排名趋势
     *
     * @param userId    用户ID
     * @param period    时间段
     * @param startDate 开始日期
     * @return 趋势值
     */
    Integer getUserRankTrend(@Param("userId") Long userId, 
                             @Param("period") String period, 
                             @Param("startDate") LocalDate startDate);

    /**
     * 记录用户排名变化
     *
     * @param userId     用户ID
     * @param period     时间段
     * @param rankBefore 变化前排名
     * @param rankAfter  变化后排名
     * @param updateDate 更新日期
     * @return 影响行数
     */
    int recordRankChange(@Param("userId") Long userId,
                         @Param("period") String period,
                         @Param("rankBefore") Integer rankBefore,
                         @Param("rankAfter") Integer rankAfter,
                         @Param("updateDate") LocalDate updateDate);
} 